package com.mazaiting.two;

import org.apache.mina.filter.codec.demux.DemuxingProtocolCodecFactory;

/**
 * 由于要同时处理TCP和HTTP请求，也就意味着需要自定义两个解码器，这时就用到了Mina提供的DemuxingProtocolCodecFactory
 * 其内部维护了一个MessageDecoder数组，用于保存添加的所有解码器
 * 每次decode()的时候就调用每个MessageDecoder的decodable()逐个检查
 * 只要发现一个MessageDecoder不是对应的解码器，就从数组中移除，直到找到合适的MessageDecoder
 * 如果最后发现数组为空，就表示没有找到对应的MessageDecoder，就会抛出异常
 * @author mazaiting
 */
public class ServerProtocolCodecFactory extends DemuxingProtocolCodecFactory {
    public ServerProtocolCodecFactory(){
        super.addMessageEncoder(String.class, ServerProtocolEncoder.class);
//        super.addMessageDecoder(ServerProtocolTCPDecoder.class);
        super.addMessageDecoder(ServerProtocolHTTPDecoder.class);
    }
}
